マイコンでドア開閉を検知してGoogle Homeで通知
作るまでもなくSwitchbot 開閉センサーでできる
---
やること
ドアを2分あけっぱなしにしたらユーザーに通知
sleep秒ごとにn回通知回数をしたら通知を終了。ドアを閉じられるまで待つ
理想
ドア - IC - Google Home
方法1 距離センサー(VL53L0X)を使う
ドアの開閉の検知方法をどうするか?
M5StickC ToF Hat(VL53L0X搭載) - スイッチサイエンス
0.3-2m ±3%
VL53L0X使用 レーザー測距センサモジュール(ToF): センサ一般 秋月電子通商-電子部品・ネット通販
obniz/src/parts/DistanceSensor/VL53L0X at master · obniz/obniz
(採用)方法2 磁気センサーを使う
BMM150(M5StickC ENV II Hat)
M5StickC ENV II Hat(SHT30/BMP280/BMM150搭載) - スイッチサイエンス
これはパーツライブラリに存在しないので、obniz.jsで扱いたい場合IOやBLEを操作して部品を使う - obniz Docs必要がある
パーツライブラリを作成するということ
外部にあれば
外部のパーツライブラリを取り込む - obniz Docs
M5Stackのサンプルコード
https://github.com/m5stack/M5-ProductExampleCodes/blob/master/Hat/ENVII_HAT/Arduino/ENVII_HAT/bmm150.cpp
CT10
CT10 | JS Parts Library | obniz
採用理由
確実にしめられたことがわかりそう
ドアがあいたときに距離が取りづらいレイアウトなのでやりやすそう
検知したらgoogle-home-notifierをつかってユーザー通知
ボードの選定
obnizをつかってみたいのでobniz対応基盤から選ぶ
製品一覧 -公式デバイス- | obniz(オブナイズ)だけで誰でもIoTを今すぐ実現
obniz Board 1Y
obniz Board 1Y
スリープ機能がある
スリープ中はobniz Board1Yの3.3V系統がシャットダウンされます
M5StickC
購入
obniz Board 1Y(常駐用)
M5StickC(表示UI用)
磁気スイッチ(GROVE)
4ピン - ジャンパオスケーブル(GROVE)
⬜磁石
組み立て
⬜obniz Board 1Yで遊ぶ
⬜M5StickCで遊ぶ
M5StickCにobnizOSをインストールする
obnizの情報をM5StickCで表示する
常駐できるように組み込む
ドア開閉で起動、終わったらスリープする
設置
1Yの電源を用意する
1Yをドアに固定する
--
常駐させる方法
ドアの開閉状態をマトリックスLEDに表示する - blog.obniz.com
code:js
//loop
distanceObniz.repeat(async () => {
disMillVal = await disSensor.measureWait();
if (disMillVal < DISTANCE_THORESHOLD) {
isOpen = true;
} else {
isOpen = false;
}
if (isOpen !== prevOpen) {
if (isOpen) {
await drawOpenFace(ctx, matrix);
} else {
await drawClosedFace(ctx, matrix);
}
}
prevOpen = isOpen;
}, 1000);
作例
スリープ機能搭載 obniz board 1Y を使った省電力な開閉検知デバイス(slack連携) - blog.obniz.com
磁石スイッチでドアの開閉を検知したら、obnizはスリープから解除され起動します。そして、起動したらSlackにメッセージを送信し、その後再度スリープを行う仕組みです。
今回の要求はこれを丸パクリする
電源は別途検討
2019年10月06日 M5StickC をドアセンサー(&開閉通知)にする - Qiita
--
M5StickC ENV Hat(販売終了)
DHT12 https://www.switch-science.com/catalog/5755/
obniz側にライブラリがある
DHT12 | JS Parts Library | obniz
#おうちハック